﻿<Serializable()> Public Class Cliente
    Inherits Usuario

    Public Property Email As String
    Public Property NumeroTarjeta As String
    Public Property FechaCaducidad As Date

    Public Sub New(ByVal nombreCliente As String, ByVal contraseñaCliente As String, ByVal email As String, ByVal numeroTarjeta As String, ByVal fechaCaducidad As Date)
        MyBase.New(nombreCliente, contraseñaCliente)
        _Email = email
        _NumeroTarjeta = numeroTarjeta
        _FechaCaducidad = fechaCaducidad
    End Sub

    Public Function ComprobarCliente(ByVal nombre As String, ByVal contraseña As String, ByVal contraseñaRepetida As String, ByVal email As String, ByVal numerotarjeta As String, ByVal fechaCaducidad As String) As String

        If nombre = "" Then
            Return "Falta por introducir el nombre del cliente"
        End If

        If nombre.Length < 2 Then
            Return "El nombre es demasiado corto"
        End If

        If nombre = "Admin" Then
            Return "El nombre no puede ser el del Administrador"
        End If

        If contraseña = "" Then
            Return "Falta por introducir la contraseña del cliente"
        End If

        If contraseñaRepetida = "" Then
            Return "Falta por repetir la contraseña del cliente"
        End If

        If contraseña <> contraseñaRepetida Then
            Return "Las contraseñas no son iguales"
        End If

        If email = "" Then
            Return "Falta por introducir el e-mail del cliente"
        End If

        If email.Length < 6 Then
            Return "El e-mail es demasiada corto"
        End If

        If Not email.Contains("@") Then
            Return "El e-mail es demasiada corto"
        End If

        If numerotarjeta = "" Then
            Return "Falta por introducir el número de tarjeta del cliente"
        End If

        If numerotarjeta.Length <> 16 Then
            Return "El número de tarjeta del cliente no es correcto"
        End If

        If fechaCaducidad = "" Then
            Return "Falta por introducir la fecha de caducidad del cliente"
        End If

        If Not IsDate(fechaCaducidad) Then
            Return "La fecha de caducida tiene que ser un dato de tipo fecha"
        End If

        If Date.Parse(fechaCaducidad) <= Today() Then
            Return "La tarjeta ha caducado"
        End If

        Return "OK"

    End Function

End Class
